import allure
from airtest.core.api import *
from common.airtest.airtest_base import AirtestBase, exists_1
from common.log.log import log
from config.conf import BASE_DIR


class MyCollection:
    """我的收藏页面"""

    @allure.step('检查收藏列表的 具体某件商品 是否存在')
    def check_collection(self, element):
        """
        检查收藏列表的 具体某件商品 是否存在
        """
        try:
            if exists_1(element):
                return True
            else:
                return False
        except Exception as e:
            log.error(f'检查收藏列表的商品出现异常，为{e}')
            raise e

    @allure.step('个人中心-我的收藏：取消收藏')
    def cancel_product_collection(self):
        """
        个人中心-我的收藏：取消收藏
        """
        try:
            log.info('个人中心取消商品的收藏')
            if not exists(Template(BASE_DIR + r"/element_picture/我的/我的收藏/我的收藏为空.png")):
                AirtestBase().click_5(BASE_DIR + r"/element_picture/我的/我的收藏/管理.png")
                for i in range(10):
                    log.info('取消收藏商品')
                    AirtestBase().click_5(BASE_DIR + r"/element_picture/我的/我的收藏/勾选圈.png")
                    AirtestBase().click_5(BASE_DIR + r"/element_picture/我的/我的收藏/取消收藏.png")
                    # 判断是否全部取消完成
                    if exists_1(BASE_DIR + r"/element_picture/我的/我的收藏/我的收藏为空.png"):
                        log.info('取消收藏完成！')
                        return True
            elif exists(Template(BASE_DIR + r"/element_picture/我的/我的收藏/我的收藏为空.png")):
                log.info('不存在收藏商品')
        except Exception as e:
            log.error(f'取消收藏失败，异常为：{e}')
            raise e
